package com.cskaoyan.javase.object._0introduction;
/**
 * Object类概述
 * Object类，虽然我们没有详细了解，但我们知道了：
 *Object类是所有类继承层次的祖先类
 * Java中所有类（包括数组）都直接或者间接的继承自该类，都实现了该类的方法。
 *
 * 自定义类时，我们并不需要特别的标注extends Object，这是一个隐式的继承。
 * 如果一个类没有明确的指出它的父类是谁，那么Object类就默认是这个类的直接父类。
 * Object类是没有成员变量定义的，并且由于子类对象的隐式初始化，Object类有且仅有一个默认提供的无参构造方法。
 * 我们学习Object类，主要关注它的成员方法。
 * Object类的成员方法会被Java每一个类继承,所以还是很重要的
 *
 * Object的成员方法中，提供给外界访问权限的有：
 *      1.public final Class getClass()
 *          获取Class对象(通过该方法了解Class对象即可,方法本身不重要)
 *      2.public String toString()
 *          将对象转换成字符串(非常常用,但是很简单,了解就可以了)
 *      3.public boolean equals(Object obj)
 *      4.public int hashCode()
 *          以上两个方法是学习Object类的重点,尤其是equals方法
 *
 *      5.protected void finalize()
 *          该方法没有任何作用,也没有任何意义,已经是一个被淘汰的方法
 *          在Java9当中,该方法已经被注解"@Deprecated"标记了
 *          在Java9当中,它已经成为了一个过时的方法,被弃用的方法
 *          过时的方法,一般都会在JDK更新中提供更优解,提供替代的解决方案,请大家写代码不要使用过时的内容
 *
 *      6.protected Object clone()
 *          该方法地位比较独特
 *          使用场景很少,开发中几乎不会使用
 *          但是它很独特: 它是一种全新的 不同于new对象的创建对象方式
 *          总的来说,了解即可
 *
 * @since 09:47
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        test();
    }

    // 该注解用于标记过时的内容
    @Deprecated
    private static void test() {

    }
}
